import { Injectable } from '@nestjs/common';
const OSS = require('ali-oss');

@Injectable()
export class UploadService {
  // constructor(private readonly) {}
  // 图片上传
  async uploadImgToBucket(file) {
    const client = new OSS({
      bucket: 'mokr',
      // region以杭州为例（oss-cn-hangzhou），其他region按实际情况填写。
      region: 'oss-cn-hangzhou',
      // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
      accessKeyId: 'LTAI4GKtWVVqqeaoByh4iQxY',
      accessKeySecret: 'klsV5Emf7YBNT3Iz4Btas2LUm0YUct',
    });
    try {
      //object-name可以自定义为文件名（例如file.txt）或目录（例如abc/test/file.txt）的形式，实现将文件上传至当前Bucket或Bucket下的指定目录。
      let result = await client.put(
        `uploadCover/${file.originalname}`,
        file.buffer,
      );
      return {
        msg: '上传成功',
        data: {
          url: result.url,
        },
      };
    } catch (e) {
      return {
        code: 1,
        msg: '上传失败',
        data: e,
      };
    }
  }

  // 视频上传
  async uploadVideoToBucket(file) {
    const client = new OSS({
      bucket: 'mokr',
      // region以杭州为例（oss-cn-hangzhou），其他region按实际情况填写。
      region: 'oss-cn-hangzhou',
      // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
      accessKeyId: 'LTAI4GKtWVVqqeaoByh4iQxY',
      accessKeySecret: 'klsV5Emf7YBNT3Iz4Btas2LUm0YUct',
    });
    try {
      //object-name可以自定义为文件名（例如file.txt）或目录（例如abc/test/file.txt）的形式，实现将文件上传至当前Bucket或Bucket下的指定目录。
      let result = await client.put(
        `uploadVideo/${file.originalname}`,
        file.buffer,
      );
      return {
        msg: '上传成功',
        data: {
          url: result.url,
        },
      };
    } catch (e) {
      return {
        code: 1,
        msg: '上传失败',
        data: e,
      };
    }
  }
}
